From 84f5ec57aeea210003b3b76a1e7a02fc65a81b82 Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Thu, 22 Jan 2015 12:46:10 +0100 Subject: [PATCH] sched/arinc653: remove MAX_VIRT_CPUS bounds check The arinc653 interface is capable of specifying a domain in the schedule (from the toolstack) before the domain itself exists, or is present in the cpupool (The domain is identified by UUID rather than domid). As a result, the schedule can't be validated at this point. The vcpu_id from userspace is only ever used to compare against a list of real vcpus available to the scheduler, which prevents ill-specified vcpus from actually being scheduled. Remove the MAX_VIRT_CPUS test, as it is not an appropriate bound for vcpu_id. Signed-off-by: Andrew Cooper Acked-by Robert VanVossen Reviewed-by: Jan Beulich --- xen/common/sched_arinc653.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/xen/common/sched_arinc653.c b/xen/common/sched_arinc653.c index 5f09deddf9..819b869193 100644 --- a/xen/common/sched_arinc653.c +++ b/xen/common/sched_arinc653.c @@ -246,9 +246,8 @@ arinc653_sched_set( for ( i = 0; i < schedule->num_sched_entries; i++ ) { - /* Check for a valid VCPU ID and run time. */ - if ( (schedule->sched_entries[i].vcpu_id >= MAX_VIRT_CPUS) - || (schedule->sched_entries[i].runtime <= 0) ) + /* Check for a valid run time. */ + if ( schedule->sched_entries[i].runtime <= 0 ) goto fail; /* Add this entry's run time to total run time. */ -- 2.30.2